#include <iostream>
#include <vector>

void print(const std::vector<int>& vec)
{
    std::cout << "size:" << vec.size() << std::endl;
    for(auto ite = vec.begin(); ite != vec.end(); ite++)
    {
        std::cout << *ite << std::endl;
    }

}

int main()
{
    //std::vector<int> vec = {1, 2, 3, 4, 5, 6};
    //std::cout << vec.size() << std::endl;
    // for (int i= 0; i < vec.size(); i++)
    // {
    //     std::cout << vec[i] << std::endl;
    // }

    /* 初始迭代器*/
    // auto ite = vec.begin();
    // std::cout << *ite << std::endl;
    // auto ite_end = vec.end();
    // std::cout << *(ite_end-1) << std::endl;

    // for(auto ite = vec.begin(); ite != vec.end(); ite++)
    // {
    //     std::cout << *ite << std::endl;
    // }

    std::vector<int> vec;
    /* 尾插*/
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    /* 尾删*/
    vec.pop_back();

    /* 按位置插*/
    vec.insert(vec.begin() + 2, 99);
    
    
    /* vec.at(n)获取第n元素,踩内存了会抛出异常，vec[]踩内存不会抛出异常*/
    std::cout << vec.at(1) << std::endl;
    /* 理论最大容量*/
    std::cout << vec.max_size() << std::endl;

    /* 自动缩容*/
    vec.shrink_to_fit();

    print(vec);

    return 0;
}